//class Solution {
//public:
//    vector<int> postorderTraversal(TreeNode* root) {
//        stack<TreeNode*> st;
//        TreeNode* pcur = root;
//        TreeNode* prev = nullptr;
//        vector<int> v;
//        while (pcur || !st.empty())
//        {
//            while (pcur)
//            {
//                st.push(pcur);
//                pcur = pcur->left;
//            }
//            TreeNode* ttop = st.top();
//            if (nullptr == ttop->right || prev == ttop->right)
//            {
//                v.push_back(ttop->val);
//                st.pop();
//                prev = ttop;
//            }
//            else
//            {
//                pcur = ttop->right;
//            }
//        }
//        return v;
//    }
//};